#ifndef ABSTRACTEDITOR_H
#define ABSTRACTEDITOR_H

#include "appGlobals.h"
#include "states/abstractstate.h"

namespace ObjectEditors {

class EditorManager;

class AbstractEditor : public AbstractState
{
    Q_OBJECT
public:
    explicit AbstractEditor(const QString& editorId, EditorManager& em);

    virtual void mousePress(QMouseEvent* pEvent);
    virtual void mouseMove(QMouseEvent* pEvent);
    virtual void mouseRelease(QMouseEvent* pEvent);

	virtual void paint(QPainter& painter) = 0;

    EditorManager& editorManager();
signals:

public slots:

};

} // namespace ObjectEditors

#endif // ABSTRACTEDITOR_H
